package com.leetcode.List;

import java.math.BigInteger;

/**
 *  通过
 */
public class Leetcode2 {

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode p1 = l1;
        ListNode p2 = l2;
        ListNode head = new ListNode(-1);
        ListNode p = head;
        // 保存进位
        int carry = 0;
        while (p1 != null || p2 != null || carry !=0) {
            int sum = 0;
            int op1 = 0;
            int op2 = 0;
            if (p1 != null) {
                op1 = p1.val;
                p1 = p1.next;
            }
            if (p2 != null) {
                op2 = p2.val;
                p2 = p2.next;
            }
            sum = op1 + op2 + carry;
            int value = sum;
            if (sum >= 10) {
                carry = 1;
                value = sum - 10;
            } else {
                carry = 0;
            }
            p.next = new ListNode(value);
            p = p.next;
        }
        return head.next;
    }

    public static void main(String[] args) {
        ListNode n1 = new ListNode(9);
        ListNode n2 = new ListNode(9);
//        ListNode n3 = new ListNode(4);
//        ListNode n4 = new ListNode(5);
//        ListNode n5 = new ListNode(6);
//        ListNode n6 = new ListNode(4);
//        ListNode n7 = new ListNode(9);
//        ListNode n8 = new ListNode(9);
//        ListNode n9 = new ListNode(9);
//        ListNode n10 = new ListNode(9);



       Leetcode2 leet = new Leetcode2();
       leet.addTwoNumbers(n1, n2);

    }

}
